package com.lin.fengxiu.repository;

import com.lin.fengxiu.model.Banner;
import com.lin.fengxiu.model.Theme;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

/**
 * @ClassName ThemeRepository
 * @Description 定义衔接层，JpaRepository参数作用：
 *                          Theme: 第一个参数是实体类型
 *                          Long:  第二个参数是主键类型
 * @Author wushaopei
 * @Date 2021/3/11 21:11
 * @Version 1.0
 * @
 */
@Repository
public interface ThemeRepository extends JpaRepository<Theme,Long>{

    /**
     * @Description @Query(nativeQuery=true)则使用原生的sql，默认是false
     *                JPQL (操作的是java对象，注意：JPQL支持的关键字比原生sql少)
     *                该语句使用  JPQL 编写，在语句中操作时要使用模型的属性，而不是数据库的参数名​
     * @param names
     * @return
     */
    @Query("select t from Theme t where t.name in (:names)")
    List<Theme> findByNames(@Param("names")List<String> names);

    @Query
    Optional<Theme> findByName(String name);
}
